package com.ybkj.daijia.server.mapper;

import com.ybkj.daijia.server.model.NoticeXPassenger;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface NoticeXPassengerMapper {

    /**
     * 保存通知信息到数据库
     *
     * @param record
     * @return 保存成功返回Id信息
     */
    Long insertRecord(NoticeXPassenger record);

    /**
     * 根据主键查询通知信息
     *
     * @param id
     * @return
     */
    NoticeXPassenger selectByPrimaryKey(Long id);

    /**
     * 根据一组主键查询通知信息
     *
     * @param ids
     * @return
     */
    List<NoticeXPassenger> selectByIdIn(Long[] ids);

    /**
     * 根据主键删除通知信息
     *
     * @param id
     * @return 返回影响的行数
     */
    int deleteByPrimaryKey(Long id);

    int deleteByNotice(Long noticeId);

    List<NoticeXPassenger> selectByPassenger(@Param("passengerId") Long passengerId,
        @Param("offset") Integer offset, @Param("size") Integer size);

    long countByPassenger(@Param("passengerId") Long passengerId);

    NoticeXPassenger selectByPassengerAndNotice(@Param("passengerId") Long passengerId,
        @Param("noticeId") Long noticeId);

    void updateHasRead(Long id);

    /**
     * 获取用户未读的所有通知的ID
     *
     * @param passengerId 客户ID
     * @return
     */
    List<Long> selectNotReadNoticeIds(@Param("passengerId") Long passengerId);


}
